#pragma once
#include <wx/wx.h>
#include <wx/panel.h>
#include "SFMLWidget/SFMLWidget.hpp"
#include <iostream>
#include <wx/listbox.h>
#include "UI/text_box.h"
#include "UI\slides_interface.hpp"
#include "UI\slide_data_interface.hpp"


class LeftPanel : public wxPanel
{
public:
    LeftPanel(wxPanel *parent);

	void clear_ui();
	
	/// SLIDE CALLBACKS
	void clear_slide_ui();
	void set_slide_ui();
	void on_slide_rename(wxCommandEvent & e);
	void on_slide_select(wxCommandEvent & e);
	void on_new_slide(wxCommandEvent & e);
	void on_delete_slide(wxCommandEvent & e);
	void on_browse_background(wxCommandEvent & e);
	void on_background_rename(wxCommandEvent & e);
	void on_gravity_x(wxCommandEvent & e);
	void on_gravity_y(wxCommandEvent & e);

	//ID_BUTBODYS,
	//ID_BUTJOINTS,

	//// BODY CALLBACKS
	void on_new_body(wxCommandEvent & e);
	void on_delete_body(wxCommandEvent & e);
	void on_switch_static(wxCommandEvent & e);
	void on_switch_kinematic(wxCommandEvent & e);
	void on_switch_dynamic(wxCommandEvent & e);
	void on_browse_animation(wxCommandEvent & e);
	void on_active_position(wxCommandEvent & e);
	void on_active_kinematic(wxCommandEvent & e);
	void on_append_kinematic(wxCommandEvent & e);
	void on_delete_kinematic(wxCommandEvent & e);
	void on_select_body(wxCommandEvent & e);
	void on_select_kinematic(wxCommandEvent & e);
	void on_change_body_name(wxCommandEvent & e);
	void on_change_anim_file(wxCommandEvent & e);
	void on_change_angle(wxCommandEvent & e);
	void on_change_pos_x(wxCommandEvent & e);
	void on_change_pos_y(wxCommandEvent & e);
	void on_change_dampening(wxCommandEvent & e);
	void on_change_angular_dampening(wxCommandEvent & e);
	void on_change_kine_x(wxCommandEvent & e);
	void on_change_kine_y(wxCommandEvent & e);
	void on_change_kine_time(wxCommandEvent & e);
	void on_change_kine_angle(wxCommandEvent & e);
	void on_check_fixed_rot(wxCommandEvent & e);

	void clear_body_ui();
	void set_to_current_body_ui();
	void adjust_body_ui_to_type( int type );

	void on_new_shape(wxCommandEvent & e);
	void on_delete_shape(wxCommandEvent & e);
	void on_switch_circular(wxCommandEvent & e);
	void on_switch_polygonal(wxCommandEvent & e);
	void on_append_vertex(wxCommandEvent & e);
	void on_delete_vertex(wxCommandEvent & e);
	void on_active_vertex(wxCommandEvent & e);
	void on_active_circle(wxCommandEvent & e);
	void on_switch_shape(wxCommandEvent & e);
	void on_switch_vertex(wxCommandEvent & e);
	void on_change_density(wxCommandEvent & e);
	void on_change_restitution(wxCommandEvent & e);
	void on_change_friction(wxCommandEvent & e);
	void on_change_collision_message(wxCommandEvent & e);
	void on_change_vertex_x(wxCommandEvent & e);
	void on_change_vertex_y(wxCommandEvent & e);
	void on_change_circle_x(wxCommandEvent & e);
	void on_change_circle_y(wxCommandEvent & e);
	void on_change_radius(wxCommandEvent & e);
	void on_check_sensor(wxCommandEvent & e);

	void clear_shape_ui();
	void set_to_current_shape_ui();

	slides_interface m_slides_interface;
	slide_data_interface m_slide_data;

    wxPanel *m_parent;
};



class RightPanel : public wxPanel
{
public:
    RightPanel(wxPanel *parent);

    void OnSetText(wxCommandEvent & event);

    wxStaticText *m_text;
	MyCanvas* m_canvas;
};



